package L01;
//ctrl+F2  终止程序运行
//alt+Enter  对异常进行处理

class MyThread extends Thread{//继承Thread,重写run方法

    //不使用throws()，因为重写的父类方法里面没有throws()
    @Override
    public void run () {
        while(true){
            System.out.println ("hello thread");
            try {
                Thread.sleep (1000);
            } catch (InterruptedException e) {
                throw new RuntimeException (e);
            }
        }

    }
}

//可以用Thread.sleep()方法控制线程的运行速度
//sleep()是Thread类的静态方法(static)，是类方法，只与类相关，与类的实例化无关
//C++中，static在类中修饰，实现类属性，和类方法


//一边输出thread，一边输出main，每个线程都是一个独立的执行流
public class T01 {
    public static void main (String[] args) throws InterruptedException {
        Thread t=new MyThread ();
        t.start ();
        //run()方法相对于start()方法，不会创建一个新的线程，在同一个线程里面运行两条语句
        //t.run ();//因为有一个无限循环，所以只会打印同一句
        while(true){
            System.out.println ("hello main");
            Thread.sleep (1000);
        }
    }
}
